package baoliDigui;

import java.util.Stack;

//如何使用递归  不借助外部数据结构 逆序一个栈
public class StackTest {

    //将stack的栈底元素返回并移除
    public static int getBottom(Stack<Integer> stack){
        int temp=stack.pop();
        if (stack.isEmpty()){   //此处递归跳出条件为：当pop()了最底部元素的时候，栈为空，停止递归
            return temp;
        }else {
            int last = getBottom(stack);
            stack.push(temp);
            return last;
        }
    }
    /*
    * 逆序一个栈
    * @param stack
    * */
    public static void reverse(Stack<Integer> stack){
        //判断
        if (stack.isEmpty()){
            return;
        }
        //得到栈底部元素
        int i=getBottom(stack);
        reverse(stack);
        stack.push(i);
    }
}
